                            # 3.1 列表是什么
# 3.1.1 访问列表元素
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0].title())
# 3.1.2 索引从0而不是1开始
print(bicycles[1].title())
print(bicycles[2].title())
print(bicycles[-1].title()) #返回列表的最后一个元素
print(bicycles[-2].title()) #返回列表倒数第二个元素
# 3.1.3 使用列表中的各个值
message = "My first bicycle was a " + bicycles[0].title() + "."
print(message)
                            # 3.2 修改、添加和删除元素
# 3.2.1 修改列表元素
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
print(motorcycles[0].title())
motorcycles[0] = 'ducati'
print(motorcycles)
print(motorcycles[0].title())
# 3.2.2 在列表中添加元素
    #末尾添加
motorcycles.append('ducati')
print(motorcycles)
#应用：可首先创建一个空列表，用于存储用户将要输入的值，
# 然后将用户提供的每个新值附加到列表中。
car = []
car.append('大众')
car.append('奔驰')
car.append('宝马')
car.append('福特')
print(car)
    #在列表中插入元素
car.insert(0, '丰田')
print(car)
# 3.2.3 从列表中删除元素
    # 使用del语句删除元素，删除后无法访问
del car[0]
print(car)
    # 使用pop()删除元素, 相当于从栈顶弹出元素，之后可以继续使用
poped_car = car.pop()
print(car)
print("我新买了一辆" + poped_car.title() + ".")
    # 弹出列表中任何位置处的元素，之后可以继续使用
first_owned = car.pop(0)
print("我的第一辆车是" + first_owned + ".")
    #根据值删除元素（不知道删除的值所处的位置，且只删除第一次出现的位置）
too_expensive = "宝马"
car.remove(too_expensive)
print(car)
print(too_expensive.title() + "买不起.")
                            # 3.3 组织列表
# 3.3.1 使用方法sort()对列表进行永久性排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort() #再也无法恢复原来的顺序
print("顺序排列：" + str(cars))
cars.sort(reverse = True)
print("逆序排列：" + str(cars))
# 3.3.2 使用函数sorted()对列表进行临时排序
print("Here is the orignal list:")
print(cars)
print("Here is the sorted list")
print( sorted(cars) )
print( sorted(cars,reverse = True) )
print("Here is the orignal list again:")
print(cars) #排列顺序并不变
# 3.3.3 倒着打印列表
letter = ['g', 'b', 't']
letter.reverse()
print(letter)
letter.reverse()
print(letter)
print( sorted(letter) )
print( sorted(letter, reverse = True) )
# 3.3.4 确定列表的长度
print( len(cars) ) #计算长度时从1开始